package com.simon.samples.server;

import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import com.simon.samples.client.LoginService;
import com.simon.samples.shared.IncorrectUserOrPassword;
import com.simon.samples.shared.NoExiste;
import com.simon.samples.shared.SessionID;
import com.simon.samples.shared.YaExiste;
import com.simon.samples.shared.world.Departamento;

public class LoginServiceImpl extends RemoteServiceServlet implements LoginService {
//com.simon.samples.server.LoginServiceImpl

	/**
	 * 
	 */
	private static final long serialVersionUID = 1661204435912047040L;
	@Override
	public SessionID login(String username, String password) throws IncorrectUserOrPassword {
		try {
			if(DataBaseConnection.testUserPassword(username,password)){
				return new SessionID("0000", 666);
			}
			else{
				throw new IncorrectUserOrPassword(username,password);
			}
		} catch (Exception e) {
			throw new IncorrectUserOrPassword("ERROR","ERROR");
		}
	}
	@Override
	public Departamento crearDepartamento(String nombreDepto) throws YaExiste {
		try {
			DataBaseConnection.buscarDepartamento(nombreDepto);
		} catch (YaExiste e) {
			throw e;
		} catch (NoExiste e){
			try{
				DataBaseConnection.insertarDepartamento(nombreDepto);
				return DataBaseConnection.buscarDepartamento(nombreDepto);
			}
			catch (Exception e2){
				throw new YaExiste("error");
			}
		} catch (Exception e){
			throw new YaExiste("error");
		}
		throw new YaExiste("Departamento '"+nombreDepto+"' ya existe");
	}

}
